//////////////////////////////////////////////////////////////////////////

#ifndef _SERVERSTARTPACKET_H_
#define _SERVERSTARTPACKET_H_

//////////////////////////////////////////////////////////////////////////

#ifndef _PACKET_H_
#include "packet.h"
#endif

#ifndef _SAVER_H_
#include "saver.h"
#endif

//////////////////////////////////////////////////////////////////////////


/** Network packet, that contains server start info
*
*  @author   Anastasia Karpinska
*  @since    May 20th, 2010
*  @updated  May 20th, 2010
*/
class ServerStartPacket : public Packet
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////


    /** Constructor */
    ServerStartPacket( const char* _mapName ) :
        m_MapName(_mapName) {}


////////////////////////////////////////////////////////////////////////////////

    /** Get killed player ID */
    const std::string& GetMapName() const { return m_MapName; }

////////////////////////////////////////////////////////////////////////////////

private:

//////////////////////////////////////////////////////////////////////////
//// Serializable interface implementation
//////////////////////////////////////////////////////////////////////////


    /** Accept saver, that serializes the object into buffer */
    virtual void AcceptSaver( Saver& _saver ) const { _saver.SaveServerStartPacket(*this); }


//////////////////////////////////////////////////////////////////////////


    /** Game map name */
    const std::string m_MapName;


//////////////////////////////////////////////////////////////////////////
};


//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
